1. The Field of the Invention
The present invention relates to web page rendering technology. More specifically, the present invention relates to mechanisms into which themes may be applied to a web page without having the specific attributes associated with the theme specified in the web page definition.
2. Background and Related Art
Computing technology has transformed the way we work and play. For example, a user with a network or Internet-enabled computing system or device with a browser may navigate to thousands of different web sites spread throughout the globe. Navigation involves sending a web page request to a server that maintains the web site, and then receiving markup language representing the web page from the server. The browser then displays the web page on the screen using the markup language representation of the web page.
Conventionally, web pages include interactive elements that when rendered result in control elements that allow a user to have some level of interaction with the web page. For example, the control element may include a button that the user can select with the mouse to perform some function (e.g., a “go” button, a “help” button, a “send” button” and “submit” button, a “next” button or the like). A control element may also be a text box into which a user can input textual information such as address, phone number, search terms, product name, or the like. A control element may also be a label. A more complex control element may be a calendar through which a user may navigate by selecting various views or enter calendar or appointment entries.
There are many technologies that enable the insertion of such controls into a web page. One conventional approach is illustrated with respect to FIG. 5, in which a web page text document 501 (specifically, an ASPX web page document) is convened into a control collection 502, which is then used to render a web page 503 in the form of the markup language (e.g., HyperText Markup Language) that may be directly interpreted by a browser.
In this example, the web page text document 501 includes a reference to a number of control elements including control elements references 512 through 515 that may be interspersed between other static markup language 511 as represented by the vertical ellipses 511A through 511E. Each of the control element references includes one or more attributes specifying behaviors of the control elements. Each of the control element references has an attribute “runat” having a value that indicates that the control element is to be rendered at the server into markup language that can be directly interpreted by the browser. Furthermore, control element reference 512 references a label control element having a identifier attribute of “input” and having a text attribute of “Name:”. The control element reference 513 references a TextBox control element. Control element reference 514 references a calendar control element. Control element reference 515 references a button control element having a text attribute of “Go”, and having an OnClick attribute that results in a function called “foo” being executed when the user clicks on the corresponding visual representation of the button control element. The function “foo” may be internal or external to the web page text document 501.
The web page text document 501 is parsed and compiled as represented by the arrow 515 into a control collection 502. The control collection 502 includes a number of object classes including the overarching page object class 520 that instantiates page objects that when executed (as represented by arrow 525) renders the web page 503 into the markup language that may be directly interpreted by the browser. For clarity, the web page 503 is illustrated as it would ultimately be presented by the browser, rather than as it is at this stage, namely, a markup language document.
The page object class 520 includes several descendent object classes including a literal class 521 that instantiates literal objects that when executed renders the static markup language portions 531 (as represented by portions 531A and 531B in the web page 503). The page object class 520 includes a descendent label class 522 that instantiates a label object that when executed renders the Label control element 532. The page object class 520 includes a descendent TextBox class 523 that instantiates a TextBox object that when executed renders the TextBox control element 533. The page object class 520 includes a descendent Calendar object class 524 that instantiates a calendar object that when executed renders the Calendar control element 534. Furthermore, the page object class 520 includes a descendent Button object class 525 that instantiates a button object that when executed renders the Calendar control element 535.
The rendering technology just described is advantageous as it allows flexibility in the functionality of the control elements. In addition, further control elements may be defined as needed for a particular web page. The control elements allow for further attributes that affect the overall look of the control element. For example, the control elements may have an attribute for background color, foreground color, font size, font type, text content, image, templates, complex properties, or the like. By applying specific attributes to the various control elements, the look and feel of the web page may be customized, and may even become recognized as being associated with a particular organization or product thereby enhancing brand recognition.
However, in order to apply a similar look or theme to another related web page, the related web page would also have control elements with similar attribute settings. Should the overall theme for these related web pages be desired to be changed, each web page would typically be altered by meticulously changing the attributes for the control elements in each document. This can be quite time consuming.
Accordingly, what would be advantageous is a mechanism for applying themes in a web page document in a manner that the theme may be consistently and more easily applied across multiple related documents and in which changes to the theme may be more easily applied across all related web page text documents. It would further be advantageous if the theme may be applied in the context of a page object class having one or more descendent control element classes thereby retaining the benefit of flexibility in the type and mechanism for rendering control elements, and the corresponding flexible functionality enabled by the control elements.